﻿using System;

namespace UnityEngine.PostProcessing
{
	// Token: 0x020000DA RID: 218
	[Serializable]
	public class AmbientOcclusionModel : PostProcessingModel
	{
		// Token: 0x170000BA RID: 186
		// (get) Token: 0x060004B2 RID: 1202 RVA: 0x00026E9B File Offset: 0x0002509B
		// (set) Token: 0x060004B3 RID: 1203 RVA: 0x00026EA3 File Offset: 0x000250A3
		public AmbientOcclusionModel.Settings settings
		{
			get
			{
				return this.m_Settings;
			}
			set
			{
				this.m_Settings = value;
			}
		}

		// Token: 0x060004B4 RID: 1204 RVA: 0x00026EAC File Offset: 0x000250AC
		public override void Reset()
		{
			this.m_Settings = AmbientOcclusionModel.Settings.defaultSettings;
		}

		// Token: 0x04000661 RID: 1633
		[SerializeField]
		private AmbientOcclusionModel.Settings m_Settings = AmbientOcclusionModel.Settings.defaultSettings;

		// Token: 0x020000DB RID: 219
		public enum SampleCount
		{
			// Token: 0x04000663 RID: 1635
			Lowest = 3,
			// Token: 0x04000664 RID: 1636
			Low = 6,
			// Token: 0x04000665 RID: 1637
			Medium = 10,
			// Token: 0x04000666 RID: 1638
			High = 16
		}

		// Token: 0x020000DC RID: 220
		[Serializable]
		public struct Settings
		{
			// Token: 0x170000BB RID: 187
			// (get) Token: 0x060004B5 RID: 1205 RVA: 0x00026EBC File Offset: 0x000250BC
			public static AmbientOcclusionModel.Settings defaultSettings
			{
				get
				{
					return new AmbientOcclusionModel.Settings
					{
						intensity = 1f,
						radius = 0.3f,
						sampleCount = AmbientOcclusionModel.SampleCount.Medium,
						downsampling = true,
						forceForwardCompatibility = false,
						ambientOnly = false,
						highPrecision = false
					};
				}
			}

			// Token: 0x04000667 RID: 1639
			[Tooltip("Degree of darkness produced by the effect.")]
			[Range(0f, 4f)]
			public float intensity;

			// Token: 0x04000668 RID: 1640
			[Tooltip("Radius of sample points, which affects extent of darkened areas.")]
			[Min(0.0001f)]
			public float radius;

			// Token: 0x04000669 RID: 1641
			[Tooltip("Number of sample points, which affects quality and performance.")]
			public AmbientOcclusionModel.SampleCount sampleCount;

			// Token: 0x0400066A RID: 1642
			[Tooltip("Halves the resolution of the effect to increase performance at the cost of visual quality.")]
			public bool downsampling;

			// Token: 0x0400066B RID: 1643
			[Tooltip("Forces compatibility with Forward rendered objects when working with the Deferred rendering path.")]
			public bool forceForwardCompatibility;

			// Token: 0x0400066C RID: 1644
			[Tooltip("Enables the ambient-only mode in that the effect only affects ambient lighting. This mode is only available with the Deferred rendering path and HDR rendering.")]
			public bool ambientOnly;

			// Token: 0x0400066D RID: 1645
			[Tooltip("Toggles the use of a higher precision depth texture with the forward rendering path (may impact performances). Has no effect with the deferred rendering path.")]
			public bool highPrecision;
		}
	}
}
